<?php
require 'BaseController.php';
class Admin_CategoryController extends Admin_BaseController{
	private $_categoryModel;
	private $_identity;
	protected $_router;
	public function init(){
		parent::init();
		$auth = Zend_Auth::getInstance();
		//$this->authorize(array('Administrator','Author'));
		$this->_identity = $auth->getIdentity();
		$this->view->identity = $this->_identity;
		$this->_categoryModel = new Model_Category();
	}
	
	public function indexAction(){
		//lấy danh sách các category
		$type = $this->getRequest()->getParam('type');
		$this->view->type = $type;
		$arrCategories = $this->_categoryModel->getAllCategories($type);
		$this->view->arrCategories = $arrCategories;
		
		
		$frmCreateCategory = new Form_CreateCategory('frmCreateCategory','ae-form');
		//lấy category nếu có
		$id = $this->getRequest()->getParam('id');
		$router = Zend_Controller_Front::getInstance()->getRouter();
		if(!empty($id)){
			$category = $this->_categoryModel->getCategoryByID($id);			
			$frmCreateCategory->populate($category->toArray());
		}
		
		
		
		$session = new Zend_Session_Namespace();
		$this->view->message = $session->message;
		$session->__unset('message');
		//truyền cho view
		$this->view->form = $frmCreateCategory;

		//kiểm tra post
		if($this->getRequest()->isPost()){
			//kiểm tra valid
			if($frmCreateCategory->isValid($_POST)){
				//lấy dữ liệu trên form
				$name = $frmCreateCategory->getValue('name');
				$slug = $frmCreateCategory->getValue('slug');
				$description = $frmCreateCategory->getValue('description');
				
				if(empty($id)){
					//insert
					$id = $this->_categoryModel->insertCategory(
							$name,
							$slug,
							$description,
							$type
					);
					if($id){
						$session->message = '<span class="success">Thêm chuyên mục thành công</span>';
					}else{
						$session->message = '<span class="error">Thêm chuyên mục không thành công';
					}
				}else{
					//update
					$num = $this->_categoryModel->updateCategory($id, $name, $slug, $description);
					if ($num == 1){
						$session->message = '<span class="success">Sửa chuyên mục thành công';
					}
					else{
						$session->message = '<span style="color: #f2000;">Sửa chuyên mục không thành công';
					}
				}
				
				$this->_redirector->gotoRoute(array('type' => $type),'admin_category');
			}
		}		
	}
	
	public function searchAction(){
		//lấy danh sách các category
		$type = $this->getRequest()->getParam('type');
		$this->view->type = $type;
		
		//lấy dữ liệu tìm kiếm
		$keyword = $this->getRequest()->getParam('keyword');
		$arrCategories = $this->_categoryModel->searchCategory($keyword);
		$this->view->arrCategories = $arrCategories;
		
	}
	public function deleteAction(){
		$session = new Zend_Session_Namespace();
		
		//truyền identity cho view
		//$this->view->identity = $this->_identity;
		
		//lấy kiểu chuyên mục
		$type = $this->getRequest()->getParam('type');
		$this->view->type = $type;
		
		//lấy dữ liệu xóa
		// cần kiểm tra post trước
		if($this->getRequest()->isPost()){
			$id = $this->getRequest()->getParam('ids');
		}else{
			$id = $this->getRequest()->getParam('id');
		}
		if(!empty($id)){
			$num = $this->_categoryModel->deleteCategory($id);
			if($num !=0){	
							
				$session->message = '<span class="success">Xóa chuyên mục thành công</span>';
			}else{
				$session->message = '<span class="error">Xóa chuyên mục không thành công</span>';
			}			
		}
		
		$this->_redirector->gotoRoute(array('type' => $type),'admin_category');
	}
	
	
	
}